IHierarchyItem.GetProperties Implementation Example

IT Hit WebDAV Server Engine

public void GetProperties(ref Property[] props)

{

    OleDbConnection conn = new OleDbConnection(connStr);

    OleDbCommand cmd;

    OleDbDataReader reader = null;

    conn.Open();

 

    try

    {

        cmd = conn.CreateCommand();

        cmd.CommandText = "SELECT Name, Namespace, PropVal"

            + " FROM Properties"

            + " WHERE ItemID = ?";

 

        cmd.Parameters.Add("@ItemID", OleDbType.Integer).Value = ID;

 

        reader = cmd.ExecuteReader();

        if (props == null) // get all properties

        {

            List<Property> l = new List<Property>();

            while (reader.Read())

            {

                Property p = new Property();

                p.Name = reader.GetString(reader.GetOrdinal("Name"));

                p.Namespace = reader.GetString(reader.GetOrdinal("Namespace"));

                p.Value = reader.GetString(reader.GetOrdinal("PropVal"));

                l.Add(p);

            }

            props = l.ToArray();

        }

        else // get selected properties

        {

            while (reader.Read())

            {

                string propName = reader.GetString(reader.GetOrdinal("Name"));

                string propNamespace = reader.GetString(reader.GetOrdinal("Namespace"));

                for (int i = 0; i < props.Length; i++)

                    if (propName == props[i].Name && propNamespace == props[i].Namespace)

                    {

                        props[i].Value = reader.GetString(reader.GetOrdinal("PropVal"));

                        break;

                    }

            }

        }

    }

    finally

    {

        if (reader != null) reader.Close();

        conn.Close();

    }

}